// 模拟网络请求函数
function fetchData() {
    return new Promise(resolve => {
        console.log("2. 开始网络请求（耗时操作）");
        setTimeout(() => {
            console.log("4. 网络请求完成，返回结果");
            resolve("用户数据");
        }, 2000);
    });
}

// 使用 async/await 的写法
async function main() {
    console.log("1. main函数开始执行");
    
    // 遇到await，函数"暂停"，但JavaScript引擎继续执行其他代码
    const result = await fetchData();
    
    console.log("5. 拿到结果后继续执行:", result);
    
    const processedResult = await processData(result);
    console.log("7. 第二步处理完成:", processedResult);
}

function processData(data) {
    return new Promise(resolve => {
        console.log("6. 开始处理数据");
        setTimeout(() => {
            resolve(data + " -> 已处理");
        }, 1000);
    });
}

// 调用main函数
main();
console.log("3. 这句话会立即执行，不会等待main函数");

// 再添加一些同步代码
console.log("3.1 更多同步代码");
console.log("3.2 继续执行...");